#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>

#include "base/types.h"

#include "engine/kernel.h"
#include "engine/game_state.h"
#include "engine/app_state_task.h"
using namespace engine;

#include "test_application/win32_window.h"
using namespace test_application;

int main(int & argc, char** argv) {
    ApplicationState app_state;


    boost::shared_ptr<WindowWrapper> window(new Win32Window(app_state));
    //window->ToFullscreen();
    window->Resize(800, 600);
    window->SetTitle("Test Application");

    boost::shared_ptr<Task> task(new AppStateTask(window));    

    Kernel::AddTask(task);
    Kernel::Execute();

    window->Close();

}